package co.com.manuel.gastos.utility;

import java.util.Date;
import java.util.GregorianCalendar;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.DatePicker;
import android.widget.Toast;

/**
 * 
 * @author manuelhenao
 *
 */
public class TeUtil {
	/**
	 * constante para la notificacion
	 */
	private static final int NOTIF_ALERTA_ID = 0;

	/**
	 * valida si estamos conectados a internet
	 * 
	 * @param context
	 * @return
	 */
	public boolean isOnline(Context context) {
		ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity == null) {
			return false;
		} else {
			NetworkInfo[] info = connectivity.getAllNetworkInfo();
			if (info != null) {
				for (int i = 0; i < info.length; i++) {
					if (info[i].getState() == NetworkInfo.State.CONNECTED) {
						return true;
					}
				}
			}
		}
		return false;
	}

	
	/**
	 * muestra el mensaje enviado en el contexto enviado
	 * 
	 * @param msg
	 * @param context
	 */
	public void showMsg(String msg, Context context) {
		Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
	}

	/**
	 * muestra el mensaje enviado en el contexto enviado, pero largo
	 * 
	 * @param msg
	 * @param context
	 */
	public void showMsgLong(String msg, Context context) {
		Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
	}


	/**
	 * obtiene una fecha de el datepicker
	 * 
	 * @return
	 */
	public Date obetenerFecha(DatePicker fechaNacimiento) {
		GregorianCalendar calendario = new GregorianCalendar();
		calendario.setTime(new Date());
		calendario.set(GregorianCalendar.DAY_OF_MONTH,
				fechaNacimiento.getDayOfMonth());
		calendario.set(GregorianCalendar.MONTH, fechaNacimiento.getMonth());
		calendario.set(GregorianCalendar.YEAR, fechaNacimiento.getYear());
		return calendario.getTime();
	}


	/**
	 * obtiene la diferencia entre la fecha atual y la enviada por parametro
	 * 
	 * @param fechaUltimoIntento
	 * @return
	 */
	public long diferenciaEntreDias(Date fechaUltimoIntento) {
		long MILLSECS_PER_DAY = 1000 * 60 * 60 * 24;
		long dias = (fechaUltimoIntento.getTime() - new Date().getTime())
				/ MILLSECS_PER_DAY;
		return dias;
	}

}
